# 定义字典
# 键是唯一的， 类型可以任意
person = {
    'name': '小明',
    'gender': '男',
    'age': 31,
    # 'is_married': True,
    # 'child': ['小丽', '小东']
}
# print(person, type(person))
# 练习：定义字典，描述一本书的相关信息（书名，价格，作者，出版社，出版时间）
book = {
    'title': 'Python从入门到放弃',
    'price': 49.9,
    'author': '小丽',
    'pub': '机械工业出版社',
    'pub_time': '2024-10-01'
}
# print(book)
# 练习：定义字典，描述一个手机的相关信息（品牌型号，颜色，价格，屏幕尺寸，内存大小，cpu）
phone = {
    'brand': '小米15',
    'color': '黑色',
    'price': 4399,
    'size': 6.39,
    'memory': '16GB',
    'cpu': '骁龙gen'
}
# print(phone)
# 1.访问
"""
# 通过键访问
print(phone['price'], phone.get('price'))
# print(phone['disk'])
# get(键) 元素不存在返回None，可以设置默认值
print(phone.get('disk'))
# get(键, 默认值)
print(phone.get('disk', '256GB'))
# 成员判断
print('brand' in phone)
"""

# 获取所有的键
# dict_keys(['name', 'gender', 'age'])
# print(person.keys())
# 获取所有的值
# dict_values(['小明', '男', 31])
# print(person.values())
# 获取所有的键值对
# dict_items([('name', '小明'), ('gender', '男'), ('age', 31)])
# print(person.items())

# 遍历字典，遍历所有的键
# for k in person:
#     print(k, person[k])
# 遍历所有的键
# for k in person.keys():
#     print(k, person[k])
# 遍历所有的值
# for v in person.values():
#     print(v)
# 遍历所有的键值对
# for item in person.items():
#     # print(item)
#     print(item[0], item[1])

# 练习：定义一个字典，包含一组学生的各科成绩，遍历字典，计算出总分。
score = {
    'chinese': 118,
    'math': 120,
    'english': 132,
    'science': 248
}
total = 0
# for v in score.values():
#     # print(v)
#     total += v
# print(total)


# 修改/添加
# 单独操作
# book['price'] = 39.9
# book['is_onsale'] = True
# 批量操作
# book.update({'price': 59.9, 'is_onsale': False})


# 删除
# del book['author']
# book.pop('pub')
# # 清空
# book.clear()
# print(book)

print(len(book)) # 统计元素数量
